// 使用统一配置入口模式
const pathImport = require('../../config/path_resolver.js').getRootConfigPath('path_resolver.js').getRootConfigPath('path_import.js');
const { FileBiz, fileUtil } = pathImport;

Component({
    /**
     * 组件的属性列表
     */
    properties: {
        fileList: {
            type: Array,
            value: []
        },
        canEdit: {
            type: Boolean,
            value: false
        },
        emptyText: {
            type: String,
            value: '暂无文件'
        }
    },

    /**
     * 组件的初始数据
     */
    data: {

    },

    /**
     * 组件的方法列表
     */
    methods: {
        /**
         * 处理文件点击
         * @param {Object} e 事件对象
         */
        onFileTap(e) {
            const idx = e.currentTarget.dataset.idx;
            const file = this.data.fileList[idx];
            this.triggerEvent('select', { file, index: idx });
        },

        /**
         * 处理查看点击
         * @param {Object} e 事件对象
         */
        async onViewTap(e) {
            const idx = e.currentTarget.dataset.idx;
            const file = this.data.fileList[idx];
            
            // 打开文件
            await FileBiz.openFile(file);
            
            this.triggerEvent('view', { file, index: idx });
        },

        /**
         * 处理下载点击
         * @param {Object} e 事件对象
         */
        async onDownloadTap(e) {
            const idx = e.currentTarget.dataset.idx;
            const file = this.data.fileList[idx];
            
            // 下载文件
            await FileBiz.downloadFile(file);
            
            this.triggerEvent('download', { file, index: idx });
        },

        /**
         * 处理删除点击
         * @param {Object} e 事件对象
         */
        async onDeleteTap(e) {
            const idx = e.currentTarget.dataset.idx;
            const file = this.data.fileList[idx];
            
            this.triggerEvent('delete', { file, index: idx });
        }
    },

    /**
     * 组件生命周期函数
     */
    lifetimes: {
        attached() {
            // 处理文件列表，添加图标
            const fileList = this.data.fileList;
            if (Array.isArray(fileList) && fileList.length > 0) {
                fileList.forEach(item => {
                    item.icon = fileUtil.getFileIcon(item.name);
                });
                this.setData({ fileList });
            }
        }
    },

    /**
     * 组件的监听属性
     */
    observers: {
        'fileList': function(fileList) {
            if (Array.isArray(fileList) && fileList.length > 0) {
                fileList.forEach(item => {
                    item.icon = fileUtil.getFileIcon(item.name);
                });
                this.setData({ fileList });
            }
        }
    }
}) 